From 345fbe6cb410fb43c7b269a54d1c60e1e025f393 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Mon, 7 Sep 2009 08:38:39 +0100 Subject: [PATCH] xend: passthrough: fix physdev_map_pirq invocation For those devices not having INTx (like VFs), avoid calling map_pirq, otherwise the guest cannot be started successfully. Also avoid calling this hypercall for hvm guest, this is done in the device model. Signed-off-by: Qing He --- tools/python/xen/xend/server/pciif.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/python/xen/xend/server/pciif.py b/tools/python/xen/xend/server/pciif.py index 018309c3de..c0b13d32b4 100644 --- a/tools/python/xen/xend/server/pciif.py +++ b/tools/python/xen/xend/server/pciif.py @@ -345,12 +345,13 @@ class PciController(DevController): if rc<0: raise VmError(('pci: failed to remove msi-x iomem')) - rc = xc.physdev_map_pirq(domid = fe_domid, - index = dev.irq, - pirq = dev.irq) - if rc < 0: - raise VmError(('pci: failed to map irq on device '+ - '%s - errno=%d')%(dev.name,rc)) + if not self.vm.info.is_hvm() and dev.irq: + rc = xc.physdev_map_pirq(domid = fe_domid, + index = dev.irq, + pirq = dev.irq) + if rc < 0: + raise VmError(('pci: failed to map irq on device '+ + '%s - errno=%d')%(dev.name,rc)) if dev.irq>0: log.debug('pci: enabling irq %d'%dev.irq) rc = xc.domain_irq_permission(domid = fe_domid, pirq = dev.irq, -- 2.30.2